using System.Collections.Generic;
using System.Reflection;
using Cysharp.Threading.Tasks;

namespace GameEntry
{
    /// <summary>
    /// 游戏加载器接口
    /// </summary>
    public interface IGameLoader
    {
        /// <summary>
        /// 当前游戏逻辑程序集版本号
        /// </summary>
        string CurrentLogicAssemblyVersion { get; }

        /// <summary>
        /// 当前游戏逻辑程序集列表
        /// </summary>
        IReadOnlyList<Assembly> CurrentLogicAssembles { get; }

        /// <summary>
        /// 加载游戏逻辑程序集
        /// </summary>
        UniTask LoadGameLogicAssemblies();
    }
}